package com.woniuxy.house.service.serviceimpl;

import com.woniuxy.house.entity.Message;
import com.woniuxy.house.mapper.MessageMapper;
import com.woniuxy.house.service.MessageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
@Transactional(rollbackFor = Exception.class)//这里只要有异常 事务就会回滚
@SuppressWarnings("all")
/**
 * 针对MessageService的实现类
 */
public class MessageServiceImpl implements MessageService {
    @Autowired
    private MessageMapper messageMapper;

    /**
     * 增加角色
     */
    public void add(Message message){
        messageMapper.add(message);
    }

    /**
     *删除消息 根据id
     * @param id
     */
    public void delete(Integer id){
        messageMapper.delete(id);
    }

    /**
     * 根据用户id 删除消息 （这里有可能是多条消息）
     * @param id
     */
    public void deleteByUser(Integer id){
        messageMapper.deleteByUser(id);
    }

    /**
     * 根据用户id查询消息(发送者用户,接收者用户)
     * @param id
     * @return message 类型的list 集合
     */
    public List<Message> getByUserId(Integer id){
        List<Message> messages = messageMapper.getByUserId(id);
        return messages;
    }

    /**
     * 根据发送者id和接收者id 查询两个用户之间的全部聊天消息
     * @param senderId
     * @param receiverId
     * @return
     */
    @Override
    public List<Message> getAll(int senderId, int receiverId) {
        return messageMapper.getAll(senderId,receiverId);
    }

    /**
     * 根据id查询消息
     * @param id
     * @return  message类 (并带出用户信息)
     */
    public  Message getById(Integer id){
        Message message = messageMapper.getById(id);
        return message;
    }


}
